package com.charging.business.media;

import com.alibaba.fastjson2.annotation.JSONField;
import com.charging.business.enums.PassStatus;
import com.charging.common.utils.DateUtils;

/**
 * 用户卡复合消费专用文件(DF01/0019)解码信息
 * 43bytes
 * @author lzj
 */
public class Card001939Model {
    /**
     * 应用标示(	01-01,1,b)
     * 0xAA-ETC 正常插卡；
     * 0xBB-ETC 用户入口异常,入口信息写入OBU;
     * 0xCC-ETC用户入口异常，第一个读取到 OBU 的门架作为入口门架写入
     */
    @JSONField(ordinal = 1)
    public int applySign = 0xAA;

    /**
     * 记录长度(	02-02,1,n)
     * 固定为0x29
     */
    @JSONField(ordinal = 2)
    public int recordLength = 0x29;

    /**
     * 应用锁定(03-03,1,n)
     * 0x00-未锁定；0x01-已锁定；其他值-保留
     */
    @JSONField(ordinal = 3)
    public int applyLockSign = 0x00;

    /**
     * 入/出口网络(04-05,2,cn)
     * 样例:"4101"
     */
    @JSONField(ordinal = 4)
    public String netWork = "4101";

    /**
     * 入/出口站号(06-07,2,n)
     * 样例:"03F5" -> 01013 郑州南
     */
    @JSONField(ordinal = 5)
    public String enStationId = "0000";

    /**
     * 入/出口道号(08-08,1,n)
     * 样例:90-入口;190-出口
     */
    @JSONField(ordinal = 6)
    public int enLaneId = 0;

    /**
     * 入/出口时间(09-12,4,n)
     * UNIX时间
     */
    @JSONField(ordinal = 7)
    public long enTime = DateUtils.getNowDate().getTime() / 1000;;

    /**
     * 入/出口车型(13-13,1,n)
     */
    @JSONField(ordinal = 8)
    public int vehicleType = 0;

    /**
     * 流通状态(14-14,1,n)
     * 0x00－保留， 0x 01－封闭 E/M混合入口， 0x02－封闭 E/M 混合出口， 0x03－封闭 ETC 入口，0x04－封闭 ETC 出口， 0x05－E/M 混合开放式， 0x06－ ETC 开放式， 0x07～ 0F 自定义， 0x10－自助
     */
    @JSONField(ordinal = 9)
    public int cardState = PassStatus.MIX_EX;

    /**
     * 前序门架编号(15-17,3,bn)
     * 样例:"000000"
     */
    @JSONField(ordinal = 10)
    public String preGantryNo = "000000";

    /**
     * 过前序门架时间(18-21,4,n)
     * 北京时间 2015-4-2 15:36:20 UNIX 时间为 55 1C F1 74
     */
    @JSONField(ordinal = 11)
    public long preGantryTime = DateUtils.getNowDate().getTime() / 1000;;

    /**
     * 车牌号码(22-33,12,an)
     * 不含颜色
     */
    @JSONField(ordinal = 12)
    public String plateNumber = "";

    /**
     * 车牌颜色(34-34,1,n)
     * 0x00 –蓝色； 0x01–黄色； 0x02 –黑色； 0x03 –白色； 0x04－渐变绿色； 0x05－黄绿双拼色； 0x06－蓝白渐变；0x07～ 0xFF 保留
     */
    @JSONField(ordinal = 13)
    public int plateColor = 0;

    /**
     * 货车轴数(35-35,1,n)
     */
    @JSONField(ordinal = 14)
    public int axleCount = 0;

    /**
     * 货车总重(36-38,3,n)
     * 单位kg
     */
    @JSONField(ordinal = 15)
    public int totalWeight = 0;

    /**
     * 车辆状态标识(39-39,1,n)
     * 0x00－本次通行用于ETC大件运输
     * 0x01－非优惠车辆
     * 0x02－绿通
     * 0x03－联合收割机
     * 0x04－集装箱车辆
     * 0xFF－默认
     */
    @JSONField(ordinal = 16)
    public int vehicleSign = 0xFF;

    public String enStationHex() {
        return netWork + enStationId;
    }

}
